Anticipation-based partial redundancy elimination for static single assignment form

نویسندگان

  • Thomas VanDrunen
  • Antony L. Hosking
چکیده

Partial redundancy elimination (PRE) is a program transformation that identifies and eliminates expressions that are redundant on at least one (but not necessarily all) execution paths of a program without increasing any path length. Chow, Kennedy, et al. devised an algorithm (SSAPRE) for performing partial redundancy elimination on intermediate representation in static single assignment (SSA) form. The practicality of that algorithm is limited by the following concerns: (1) it makes assumptions about the namespace that are stronger than those of SSA form and that may not be valid if other optimizations have already been performed on the program; (2) if redundancies occur in nested expressions, the algorithm may expose but not eliminate them (requiring a second pass of the algorithm); (3) it misses cases covered by the state-of-the-art in PRE; and (4) it is difficult to understand and implement. We present an algorithm (A-SSAPRE) structurally similar to SSAPRE that uses anticipation rather than availability; this algorithm is simpler than SSAPRE, covers more cases, eliminates nested redundancies on a single pass, and makes no assumptions about the namespace.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Partial Redundancy Elimination in SSA

The SSAPRE algorithm for performing partial redundancy elimination based entirely on SSA form is presented. The algorithm is formulated based on a new conceptual framework, the fac-tored redundancy graph, for analyzing redundancy, and represents the rst sparse approach to the classical problem of partial redundancy elimination. At the same time, it provides new perspectives on the problem and o...

متن کامل

A Generalized Method for Realizing Partial Redundancy Elimination for Normal Forms in Static Single Assignment Forms

Partial Redundancy Elimination (PRE) is an effective optimization for eliminating partially redundant expressions and includes the effects of common subexpression elimination and hoisting loop invariant expressions. There have been some previous attempts to realize PRE on the Static Single Assignment (SSA) form, which is a suitable intermediate form for optimization. However, such attempts are ...

متن کامل

C-SSAPRE: Eliminating redundancy over copies

Partial Redundancy Elimination (PRE) is an optimization that prevents, where possible, the re-computation of an expression along some paths in a program. PRE is general enough to automatically implement loop-invariant code hoisting and global common sub-expression elimination. PRE appears to be especially beneficial for functional programs, where the class of expressions that may be moved is mu...

متن کامل

Compile Time Elimination of Null- and Bounds-Checks

SafeTSA is a new type safe intermediate representation for mobile code based on static single assignment form. We developed SafeTSA as an alternative to the Java Virtual Machine. Programs in SafeTSA contain explicit nulland bounds-check instructions, allowing their elimination. Type safety is maintained by enforcing the use of only nulland bounds-checked values in dereference and index operatio...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • Softw., Pract. Exper.

دوره 34  شماره 

صفحات  -

تاریخ انتشار 2004